package com.freeman.cement.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.freeman.cement.entity.MyEvent;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.Date;
import java.util.List;

@Mapper
public interface BjdbDao extends BaseMapper<MyEvent> {
    int addEvent(MyEvent event);

    //多条件查询，为报警列表使用，简略事件信息
    List<MyEvent> selectEvents(@Param("myEvent") MyEvent myEvent, @Param("begin") Date begin, @Param("end") Date end);

    //查询报警事件详情，只能查出唯一的事件
    MyEvent findEventDetail(@Param("eventId") String eventId);
    MyEvent getEventDetail(@Param("id") Integer id);
    MyEvent getEventDetailByEventId(@Param("eventId") String eventId);

    //根据报警事件状态和处理人名称的模糊查找，找到符合条件的eventId集合
    List<MyEvent> selectEventIds(@Param("status") Integer status, @Param("userId") Integer userId);

    //更新报警事件状态
    int updateEvent(MyEvent event);

    //查找数据库中，eventId为查找值的记录的个数，也就是看数据库中，是否包含有eventId的事件，用于事件接收时的去重，因为联动事件和原始事件都有同样的eventId
    int getNumOfEvents(@Param("eventId") String eventId);

    //更新本地存储的报警图片访问链接
    int updatePicUrl(@Param("id") int id, @Param("url") String url);

    //清理历史数据
    @Update("${sql}")
    void cleanupHistoricalData(@Param("sql") String sql);
}
